package com.party.core.service.log;

import com.party.common.paging.Page;
import com.party.core.model.log.LogEvent;
import com.party.core.model.log.LogEventQuery;

import java.util.HashMap;
import java.util.List;

/**
 * 日志接口服务
 * Created by wei.li
 *
 * @date 2017/9/5 0005
 * @time 18:29
 */
public interface ILogEventService {

    /**
     * 日志列表
     * @param logEventQuery 日志
     * @param page 分页参数
     * @return 日志列表
     */
    List<LogEvent> listPage(LogEventQuery logEventQuery, Page page);


    /**
     * 日志新增
     *
     * @param logEvent 日志信息
     * @return 编号
     */
    void insert(LogEvent logEvent);

    /**
     * 获取日志详情
     * @param id 编号
     * @return 日志详情
     */
    LogEvent get(String id);


    /**
     * 删除几天前的数据
     * @param type 类型
     * @param date 几天前
     */
    void deleteForDate(Integer type, Integer date);

    /**
     * 行为列表
     * @param operatorId 操作者
     * @param date 时间
     * @return 列表数据
     */
    List<LogEvent> behaviorList(String operatorId, String date, Page page);

    /**
     * 统计访问量
     * @param operatorId 操作者
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return 统计数据
     */
    List<HashMap<String, Object>> countByDate(String operatorId, String startDate, String endDate);

    /**
     * 统计访问量
     * @param operatorId 操作者
     * @return 统计数据
     */
    List<HashMap<String, Object>> countByDate(String operatorId);


}
